﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Lilium.Web.Mvc.State
{
	public interface IStatefulObject
	{
		string Key { get; }

		Type StateType { get; }

        /// <summary>
        /// Возвращает копию состояния объекта, с учетом будущего выполнения указанного действия.
        /// </summary>
        /// <param name="actionName"></param>
        /// <returns></returns>
		object GetState(string actionName);

		void SetState(object state);
	}
}